/*
题目描述
有n个人围成一圈，顺序从1开始排号。
从第1个人开始报数（从1到3报数），凡报到3的人退出圈子，问最后留下的是原来第几号的那位。

输入
只有一个正整数n，保证n不超过1000。

输出
输出最后留下的人的原始编号。
请注意行尾输出换行。
*/
#include <stdio.h>
// 数组存储每人的状态
// 0为未退出
// 1为已退出
int main()
{
    int n;
    scanf("%d", &n);
    int arr[n];
    for (int i = 0; i < n; i++)
    {
        arr[i] = 0;
    }
    int step = 1;
    int index = 0;
    int live = n;
    int flag = 1;
    while (flag)
    {
        // 判断计数器
        if (index == n)
        {
            index = 0;
        }
        // 如果只剩一人存活，遍历查找是谁存活，输出编号并退出
        if (live == 1)
        {
            for (int i = 0; i < n; i++)
            {
                if (arr[i] == 0)
                {
                    printf("%d", i + 1);
                    flag = 0;
                    break;
                }
            }
        }
        int i;
        // 跳过状态为 1 的
        if (arr[index] == 0)
        {
            if (step == 3)
            {
                arr[index] = 1;
                live--;
                step = 0;
            }
            index++;
            step++;
        }
        else
        {
            index++;
        }
    }
}